package com.shensi.adminCollect.domain.markert;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.shensi.adminCollect.common.annotation.Excel;
import com.shensi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.Date;

/**
 * 立减活动对象 reduction_activity
 * 
 * @author qujia
 * @date 2021-11-02
 */
public class ReductionActivity extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    public static final String member_tags_labelUser="labelUser";

    /** $column.columnComment */
    private Long activityId;

    /** 活动名称 */
    @Excel(name = "活动名称")
    private String activityName;

    /** 活动用途 */
    @Excel(name = "活动用途")
    private String activityUse;

    /** 活动类型 */
    @Excel(name = "活动类型")
    private String activityType;

    /** 活动方式 */
    @Excel(name = "活动方式")
    private String activityMode;

    /** 活动针对的是全部油品还是部分油品 true是部分油品 */
    @Excel(name = "活动针对的是全部油品还是部分油品 true是部分油品")
    private Long oilPartOrAll;

    /** all part 是否是全部车主 */
    @Excel(name = "all part 是否是全部车主")
    private String memberCondition;

    /** 会员等级 */
    @Excel(name = "会员等级")
    private String memberLevel;

    /** 会员标签 */
    @Excel(name = "会员标签")
    private String memberTags;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private String paymentMethod;

    /** 活动开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    /** 活动截止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动截止时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /** 最大参与次数 */
    @Excel(name = "最大参与次数")
    private Long maxCount;

    /** 活动规则 */
    @Excel(name = "活动规则")
    private String activityRule;

    /** 是否开启防作弊 */
    @Excel(name = "是否开启防作弊")
    private String antiCheating;

    /** 单日最大次数 */
    @Excel(name = "单日最大次数")
    private Long countOfDay;

    /** $column.columnComment */
    @Excel(name = "预算")
    private Double budget;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long createUser;

    private String createUserName;

    /** 删除人 */
    @Excel(name = "删除人")
    private Long deleteUser;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deleteTime;

    /** 修改人 */
    @Excel(name = "修改人")
    private Long modifyUser;

    private String modifyUserName;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date modifyTime;

    /** 油企id */
    @Excel(name = "油企id")
    private Long enterpriseId;

    /** 活动状态 */
    @Excel(name = "活动状态")
    private String activeStatus;

    /** 删除状态 */
    @Excel(name = "删除状态")
    private String deleteStatus;
    @Excel(name = "时间段模式")
    /**
     * all-全部
     * 其它-根据周和月判断
     */
    private String timeMode;
    @Excel(name = "生效时间段")
    /**
     * 活动每月几号生效
     */
    private String days;

    /**
     * 活动周几生效
     */
    private String weeks;

    @Excel(name = "是否与电子卡互斥")
//    电子卡标识   0全部，1进微信，2电子卡
    private String cardFlag;
//1有效0无效
    private String activityStatus;

    /**
     * 实付金额上限门槛
     */
    private BigDecimal amtUpperLimit;

    /**
     * 周开始时间
     */
    private LocalTime startTimeOfWeek;
    /**
     * 周结束时间
     */
    private LocalTime endTimeOfWeek;
    /**
     * 月开始时间
     */
    private LocalTime startTimeOfMonth;
    /**
     * 月结束时间
     */
    private LocalTime endTimeOfMonth;

    /**
     * 活动是否启用，0-停用，1-启用
     */
    private String activityEnabled;

    /**
     * 用户类别，new-新用户，old-老用户
     */
    private String memberCategory;

    private String weekTimeRangeType;
    private String monthTimeRangeType;



    /**
     * 匹配的电子卡类型
     */
    private String cardType;

    /**
     * 匹配的实体卡类型，非必选
     */
    private String physicalCardType;

    /**
     * 充值立减-充值时允许累计充值立减余额
     * 0-不允许 1-允许
     */
    private Integer rechargeActivityRechargeEnable;
    /**
     * 充值立减-消费时允许使用充值立减余额
     * 0-不允许 1-允许
     */
    private Integer rechargeActivityConsumeEnable;

    public String getWeekTimeRangeType() {
        return weekTimeRangeType;
    }

    public void setWeekTimeRangeType(String weekTimeRangeType) {
        this.weekTimeRangeType = weekTimeRangeType;
    }

    public String getMonthTimeRangeType() {
        return monthTimeRangeType;
    }

    public void setMonthTimeRangeType(String monthTimeRangeType) {
        this.monthTimeRangeType = monthTimeRangeType;
    }

    public BigDecimal getAmtUpperLimit() {
        return amtUpperLimit;
    }

    public void setAmtUpperLimit(BigDecimal amtUpperLimit) {
        this.amtUpperLimit = amtUpperLimit;
    }

    public String getCardFlag() {
        return cardFlag;
    }

    public String getActivityStatus() {
        return activityStatus;
    }

    public void setActivityStatus(String activityStatus) {
        this.activityStatus = activityStatus;
    }
    public void setCardFlag(String cardFlag) {
        this.cardFlag = cardFlag;
    }

    public String getTimeMode() {
        return timeMode;
    }

    public void setTimeMode(String timeMode) {
        this.timeMode = timeMode;
    }

    public String getDays() {
        return days;
    }

    public void setDays(String days) {
        this.days = days;
    }

    public void setActivityId(Long activityId)
    {
        this.activityId = activityId;
    }
    public void setBudget(Double budget)
    {
        this.budget = budget;
    }

    public Long getActivityId() 
    {
        return activityId;
    }
    public Double getBudget()
    {
        return budget;
    }
    public void setActivityName(String activityName) 
    {
        this.activityName = activityName;
    }

    public String getActivityName() 
    {
        return activityName;
    }
    public void setActivityUse(String activityUse) 
    {
        this.activityUse = activityUse;
    }

    public String getActivityUse() 
    {
        return activityUse;
    }
    public void setActivityType(String activityType) 
    {
        this.activityType = activityType;
    }

    public String getActivityType() 
    {
        return activityType;
    }
    public void setActivityMode(String activityMode) 
    {
        this.activityMode = activityMode;
    }

    public String getActivityMode() 
    {
        return activityMode;
    }
    public void setOilPartOrAll(Long oilPartOrAll) 
    {
        this.oilPartOrAll = oilPartOrAll;
    }

    public Long getOilPartOrAll() 
    {
        return oilPartOrAll;
    }
    public void setMemberCondition(String memberCondition) 
    {
        this.memberCondition = memberCondition;
    }

    public String getMemberCondition() 
    {
        return memberCondition;
    }
    public void setMemberLevel(String memberLevel) 
    {
        this.memberLevel = memberLevel;
    }
    public void setMemberTags(String memberTags)
    {
        this.memberTags = memberTags;
    }

    public String getMemberLevel() 
    {
        return memberLevel;
    }
    public String getMemberTags()
    {
        return memberTags;
    }
    public void setPaymentMethod(String paymentMethod) 
    {
        this.paymentMethod = paymentMethod;
    }

    public String getPaymentMethod() 
    {
        return paymentMethod;
    }
    public void setStartDate(Date startDate) 
    {
        this.startDate = startDate;
    }

    public Date getStartDate() 
    {
        return startDate;
    }
    public void setEndDate(Date endDate) 
    {
        this.endDate = endDate;
    }

    public Date getEndDate() 
    {
        return endDate;
    }
    public void setMaxCount(Long maxCount) 
    {
        this.maxCount = maxCount;
    }

    public Long getMaxCount() 
    {
        return maxCount;
    }
    public void setActivityRule(String activityRule) 
    {
        this.activityRule = activityRule;
    }

    public String getActivityRule() 
    {
        return activityRule;
    }
    public void setAntiCheating(String antiCheating)
    {
        this.antiCheating = antiCheating;
    }

    public String getAntiCheating()
    {
        return antiCheating;
    }
    public void setCountOfDay(Long countOfDay)
    {
        this.countOfDay = countOfDay;
    }

    public Long getCountOfDay()
    {
        return countOfDay;
    }
    public void setCreateUser(Long createUser)
    {
        this.createUser = createUser;
    }

    public Long getCreateUser()
    {
        return createUser;
    }
    public void setDeleteUser(Long deleteUser)
    {
        this.deleteUser = deleteUser;
    }

    public Long getDeleteUser()
    {
        return deleteUser;
    }
    public void setDeleteTime(Date deleteTime) 
    {
        this.deleteTime = deleteTime;
    }

    public Date getDeleteTime() 
    {
        return deleteTime;
    }
    public void setModifyUser(Long modifyUser)
    {
        this.modifyUser = modifyUser;
    }

    public Long getModifyUser()
    {
        return modifyUser;
    }
    public void setModifyTime(Date modifyTime) 
    {
        this.modifyTime = modifyTime;
    }

    public Date getModifyTime() 
    {
        return modifyTime;
    }
    public void setEnterpriseId(Long enterpriseId)
    {
        this.enterpriseId = enterpriseId;
    }

    public Long getEnterpriseId()
    {
        return enterpriseId;
    }
    public void setActiveStatus(String activeStatus) 
    {
        this.activeStatus = activeStatus;
    }

    public String getActiveStatus() 
    {
        return activeStatus;
    }
    public void setDeleteStatus(String deleteStatus) 
    {
        this.deleteStatus = deleteStatus;
    }

    public String getDeleteStatus() 
    {
        return deleteStatus;
    }

    public LocalTime getStartTimeOfWeek() {
        return startTimeOfWeek;
    }

    public void setStartTimeOfWeek(LocalTime startTimeOfWeek) {
        this.startTimeOfWeek = startTimeOfWeek;
    }

    public LocalTime getEndTimeOfWeek() {
        return endTimeOfWeek;
    }

    public void setEndTimeOfWeek(LocalTime endTimeOfWeek) {
        this.endTimeOfWeek = endTimeOfWeek;
    }

    public LocalTime getStartTimeOfMonth() {
        return startTimeOfMonth;
    }

    public void setStartTimeOfMonth(LocalTime startTimeOfMonth) {
        this.startTimeOfMonth = startTimeOfMonth;
    }

    public LocalTime getEndTimeOfMonth() {
        return endTimeOfMonth;
    }

    public void setEndTimeOfMonth(LocalTime endTimeOfMonth) {
        this.endTimeOfMonth = endTimeOfMonth;
    }

    public String getActivityEnabled() {
        return activityEnabled;
    }

    public void setActivityEnabled(String activityEnabled) {
        this.activityEnabled = activityEnabled;
    }

    public String getCreateUserName() {
        return createUserName;
    }

    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }

    public String getModifyUserName() {
        return modifyUserName;
    }

    public void setModifyUserName(String modifyUserName) {
        this.modifyUserName = modifyUserName;
    }

    public String getMemberCategory() {
        return memberCategory;
    }

    public void setMemberCategory(String memberCategory) {
        this.memberCategory = memberCategory;
    }


    public String getCardType() {
        return cardType;
    }

    public void setCardType(String cardType) {
        this.cardType = cardType;
    }

    public String getPhysicalCardType() {
        return physicalCardType;
    }

    public void setPhysicalCardType(String physicalCardType) {
        this.physicalCardType = physicalCardType;
    }

    public Integer getRechargeActivityRechargeEnable() {
        return rechargeActivityRechargeEnable;
    }

    public void setRechargeActivityRechargeEnable(Integer rechargeActivityRechargeEnable) {
        this.rechargeActivityRechargeEnable = rechargeActivityRechargeEnable;
    }

    public Integer getRechargeActivityConsumeEnable() {
        return rechargeActivityConsumeEnable;
    }

    public void setRechargeActivityConsumeEnable(Integer rechargeActivityConsumeEnable) {
        this.rechargeActivityConsumeEnable = rechargeActivityConsumeEnable;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("activityId", getActivityId())
            .append("budget", getBudget())
            .append("activityName", getActivityName())
            .append("activityUse", getActivityUse())
            .append("activityType", getActivityType())
            .append("activityMode", getActivityMode())
            .append("oilPartOrAll", getOilPartOrAll())
            .append("memberCondition", getMemberCondition())
            .append("memberLevel", getMemberLevel())
            .append("memberTags", getMemberTags())
            .append("paymentMethod", getPaymentMethod())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("maxCount", getMaxCount())
            .append("activityRule", getActivityRule())
            .append("antiCheating", getAntiCheating())
            .append("countOfDay", getCountOfDay())
            .append("createUser", getCreateUser())
            .append("createTime", getCreateTime())
            .append("deleteUser", getDeleteUser())
            .append("deleteTime", getDeleteTime())
            .append("modifyUser", getModifyUser())
            .append("modifyTime", getModifyTime())
            .append("enterpriseId", getEnterpriseId())
            .append("activeStatus", getActiveStatus())
            .append("deleteStatus", getDeleteStatus())
            .append("timeMode", getTimeMode())
            .append("days", getDays())
            .append("weeks",getWeeks())
            .toString();
    }

    
    public String getWeeks() {
        return weeks;
    }

    public void setWeeks(String weeks) {
        this.weeks = weeks;
    }
}
